/*
 * @Descripttion: 拼接版本号名称
 * @Author: Lizhijie
 * @Date: 2021-05-21 16:54:25
 * @LastEditTime: 2021-06-29 14:32:08
 */

import moment from 'moment';
import _ from 'lodash';

/**
 * @Descripttion: 签约计划设置当前版本号
 * @param versionInfo 版本信息 object
 * @return versionName 版本名称 string
 */

export function setSignPlanVersionName({
  versionType,
  affiliationMonth,
  versionTypeName,
  createTime,
  updateTime,
  versionNum,
  versionStateCode,
  isAssessmentVersion,
  // compileYear,
}) {
  //   1、月度动态版：dynamic
  //     规则： {归属月份}月动态版{版本号}-{最后更新时间}
  //     示例：201910月动态版V1-20191201；
  //   2、投资版、战规版、大定价版：
  //     规则：{版本类型}{版本号}-{最后更新时间}
  //     示例：投资版V1-20191102，战规版V3-20191102，大定价版V2-20191102
  //   3、预算版：budget
  //     规则：{预算年份}{全年/年中}预算版{版本号}-{最后更新时间}
  //     示例：2019全年预算版V1-20181212，2019全年预算版V5-20190331，
  //                2019年中预算版V1-20190501，2019年中预算版V5-20190831
  //   4、审批通过后才显示最后更新时间，过程中不显示（显示状态）；
  // (月度动态版 - dynamic) (预算版 - budget) (战规版 - strategy) (投资版 - investment)
  let versionName = '';
  let assessmentVersionName = '';
  let lastDate = '';
  //   0 不是考核版  1是考核版
  if (Number(isAssessmentVersion)) {
    assessmentVersionName = '(考核版)';
  }
  //  是系统生成或审批通过 显示最后更新时间
  if (versionStateCode === 'sys_generation' || versionStateCode === 'success_approved') {
    if (!_.isEmpty(createTime)) {
      lastDate = `-${moment(createTime).format('YYYYMMDD')}`;
    } else if (!_.isEmpty(updateTime)) {
      lastDate = `-${moment(updateTime).format('YYYYMMDD')}`;
    }
  }
  if (versionType === 'dynamic') {
    versionName = `${affiliationMonth}月${versionTypeName}${versionNum}${lastDate}${assessmentVersionName}`;
  }
  if (versionType === 'budget') {
    versionName = `${versionTypeName}${versionNum}${lastDate}${assessmentVersionName}`;
  }
  if (versionType === 'strategy' || versionType === 'investment') {
    versionName = `${versionTypeName}${versionNum}${lastDate}${assessmentVersionName}`;
  }
  return versionName;
}

/**
 * @Descripttion: 设置签约取数版本号
 * @param versionInfo 版本信息 object
 * @return versionName 版本名称 string
 */
export function setSignPlanAccessVersionName({
  sourceVersionTypeCode,
  sourceAffiliationMonth,
  sourceVersionNum,
  sourceCreateTime,
  sourceUpdateTime,
  sourceVersionTypeName,
  sourceIsAssessmentVersion,
  sourceVersionIdentify,
}) {
  let versionName = '';
  const sourcelastEditTime = sourceUpdateTime
    ? moment(sourceUpdateTime).format('YYYYMMDD')
    : moment(sourceCreateTime).format('YYYYMMDD');
  const assessmentVersionName = Number(sourceIsAssessmentVersion) ? '(考核版)' : '';

  if (sourceVersionTypeCode === 'dynamic') {
    versionName = `${sourceAffiliationMonth}月${sourceVersionTypeName}${sourceVersionNum}-${sourcelastEditTime}${assessmentVersionName}`;
  }
  if (sourceVersionTypeCode === 'budget') {
    versionName = `${sourceVersionIdentify}${sourceVersionNum}-${sourcelastEditTime}${assessmentVersionName}`;
  }
  if (sourceVersionTypeCode === 'strategy' || sourceVersionTypeCode === 'investment') {
    versionName = `${sourceVersionTypeName}${sourceVersionNum}-${sourcelastEditTime}${assessmentVersionName}`;
  }
  return versionName;
}

/**
 * @Descripttion: 设置回款计划版本号
 * @param {*}
 * @return {*}
 */

export function setReturnMoneyPlanVersionName({
  // compileYear, // 预算年份
  versionType, // 版本类型
  affiliationMonth, // 归属月份
  versionTypeName, // 版本类型名称
  createTime, // 版本创建时间
  updateTime, // 版本修改时间
  versionNum, // 版本号
  versionStateCode, // 版本状态编码
  versionIdentify, // 预算版版本属性（年中/全年）
  isAssessmentVersion, // 是否考核版
  sourceUpdateTime, // 来源版本修改时间
  sourceCreateTime, // 来源版本创建时间
  sourceAffiliationMonth, // 来源版本归属月份
  sourceVersionTypeName, // 来源版本类型名称
  sourceVersionNum, // 来源版本号
  sourceIsAssessmentVersion, // 来源版本是否考核版
  sourceCompileYear, // 来源版本预算年份
  sourceVersionIdentify, // 来源版本版本属性（年中/全年）
  sourceVersionTypeCode, // 来源版本
}) {
  let currentVersionName = '';
  let accessVersionName = '';
  const assessmentVersionName = Number(isAssessmentVersion) ? '(考核版)' : '';
  const assessmentVersionName1 = Number(sourceIsAssessmentVersion) ? '(考核版)' : '';
  let lastDate = '';
  const UP_DATA_TIME = `-${moment(sourceUpdateTime || sourceCreateTime).format('YYYYMMDD')}`;
  // 如果是审批通过显示最后更新时间
  if (versionStateCode === 'sys_generation' || versionStateCode === 'success_approved') {
    lastDate = `-${moment(updateTime || createTime).format('YYYYMMDD')}`;
  }
  if (versionType === 'dynamic') {
    currentVersionName = `${affiliationMonth}月${versionTypeName}${versionNum}${lastDate}${assessmentVersionName}`;
  }
  if (versionType === 'budget') {
    currentVersionName = `${versionIdentify}${versionNum}${lastDate}${assessmentVersionName}`;
  }
  if (versionType === 'strategy' || versionType === 'investment') {
    currentVersionName = `${versionTypeName}${versionNum}${lastDate}${assessmentVersionName}`;
  }
  // 取数版本
  if (sourceVersionTypeCode === 'dynamic') {
    accessVersionName = `${sourceAffiliationMonth}月${sourceVersionTypeName}${sourceVersionNum}${UP_DATA_TIME}${assessmentVersionName1}`;
  }
  if (sourceVersionTypeCode === 'budget') {
    accessVersionName = `${sourceCompileYear}${sourceVersionIdentify}${sourceVersionTypeName}${sourceVersionNum}${UP_DATA_TIME}${assessmentVersionName1}`;
  }
  if (sourceVersionTypeCode === 'strategy' || sourceVersionTypeCode === 'investment') {
    accessVersionName = `${sourceVersionTypeName}${sourceVersionNum}${UP_DATA_TIME}${assessmentVersionName1}`;
  }
  return {
    currentVersionName,
    accessVersionName,
  };
}

/**
 * @Descripttion: 货值填报版本号
 * @param {*}
 * @return {*}
 */
export function setValueReportVersionName(versionInfo) {
  // 1、月度动态版：
  // 规则： {归属月份}月动态版{版本号}-{最后更新时间}
  // 示例：201910月动态版V1-20191201；
  // 2、投资版、战规版、大定价版：
  // 规则：{版本类型}{版本号}-{最后更新时间}
  // 示例：投资版V1-20191102，战规版V3-20191102，大定价版V2-20191102
  // 3、预算版：
  // 规则：{预算年份}{全年/年中}预算版{版本号}-{最后更新时间}
  // 示例：2019全年预算版V1-20181212，2019全年预算版V5-20190331，
  // 2019年中预算版V1-20190501，2019年中预算版V5-20190831
  // 4、审批通过后才显示最后更新时间，过程中不显示（显示状态）；

  if (versionInfo.versionTypeCode === 'dynamic') {
    if (
      versionInfo.versionStateCode === 'sys_generation' ||
      versionInfo.versionStateCode === 'success_approved'
    ) {
      return `${moment(versionInfo.versionAscriptionDate).format('YYYYMM')}月动态版${
        versionInfo.versionNum
      }-${moment(versionInfo.updateTime).format('YYYYMMDD')}${
        Number(versionInfo.batchAdjust) === 1 ? '-(普调版)' : ''
      }`;
    }

    return `${moment(versionInfo.versionAscriptionDate).format('YYYYMM')}月动态版${
      versionInfo.versionNum
    }${Number(versionInfo.batchAdjust) === 1 ? '-(普调版)' : ''}`;
  }
  if (
    versionInfo.versionTypeCode === 'investment' ||
    versionInfo.versionTypeCode === 'strategy' ||
    versionInfo.versionTypeCode === 'pricing'
  ) {
    if (
      versionInfo.versionStateCode === 'sys_generation' ||
      versionInfo.versionStateCode === 'success_approved'
    ) {
      return `${versionInfo.versionType}${versionInfo.versionNum}-${moment(
        versionInfo.updateTime,
      ).format('YYYYMMDD')} ${
        versionInfo.isAssessmentVersion && versionInfo.isAssessmentVersion * 1 === 1
          ? '(考核版)'
          : ''
      }${versionInfo.batchAdjust && versionInfo.batchAdjust * 1 === 1 ? '-(普调版)' : ''}`;
    }
    return `${versionInfo.versionType}${versionInfo.versionNum} ${
      versionInfo.isAssessmentVersion && versionInfo.isAssessmentVersion * 1 === 1 ? '(考核版)' : ''
    }${versionInfo.batchAdjust && versionInfo.batchAdjust * 1 === 1 ? '-(普调版)' : ''}`;
  }
  return '';
}
